package yz.com.javautil.astar;

import lombok.*;

/**
 * @author Administrator
 */
@Data
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class AStarNode {
    /**
     * x坐标
     */
    private int x;
    /**
     * y坐标
     */
    private int y;
    /**
     * 表示节点的值
     */
    private String value;
    /**
     * F值 = G值 + H值
     */
    private double f = 0.0;
    /**
     * G值 = 从起点沿着产生的路径，移动到网格上指定节点的移动消耗。
     */
    private double g = 0.0;
    /**
     * H值 = 从当前格移动到终点的预估移动消耗。
     */
    private double h = 0.0;
    /**
     * 是否可到达（是否为障碍物）
     */
    private boolean reachable;
    /**
     * 父节点（上一个节点）
     */
    private AStarNode fromAStarNode;

    public AStarNode(int x, int y, String value, boolean reachable) {
        super();
        this.x = x;
        this.y = y;
        this.value = value;
        this.reachable = reachable;
    }


}
